/*
*   testparva.c
*   ===========
*   archivo de prueba para la parva
*/

#include <stdio.h>
#include "heapADT.h"

int compFn(elementType elem1, elementType elem2);
void printFn(elementType elem);

int
main(void)
{
    heapADT parva;
    elementType elem;
    int i;
    //int e[]={5, 3, 8, 1, 0, 9};
    elementType e[]={{2,1.3},{3, 1.9},{4, 2.3}, {5,2.4}};
    
    printf("<<< TEST PARA LA PARVA >>>\n");
    parva = NewHeap(compFn, printFn);
     
    for (i=0; i < sizeof(e)/sizeof(e[0]); i++)
    {    
        InsertElement(parva, e[i]);    
        printf("Elementos en la parva:\n");
        ListElements(parva);
    }    
    
    while( !HeapIsEmpty(parva) )
    {
      printf("Extraigo el prox elemento:");
      GetElement(parva, &elem);
      printFn(elem);
      printf("\n");
      ListElements(parva);
    }
    
    FreeHeap(parva);
    return 0;
}

int
compFn(elementType elem1, elementType elem2)
{
    if(elem1.ic > elem2.ic)
      return 1;
    else if( elem1.ic < elem2.ic)
            return -1;
         else
            return 0;   
}

void 
printFn(elementType elem)
{
	printf("{ic=%g;len=%d}  ", elem.ic, elem.len);
	return;
}

